package controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import pojo.Hoadon;
import pojo.Taikhoan;
import util.BeanUtil;
import util.MessageNotificationHepler;
import dao.HoadonDAO;
import dao.TaikhoanDAO;

@ManagedBean(name = "trangTaiKhoanThanhVienBean")
@ViewScoped
public class TrangTaiKhoanThanhVienBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private List<Hoadon> lstHoaDon;
	private Taikhoan taiKhoan;

	private String passCu;
	private String passMoiLan1;
	private String passMoiLan2;

	@PostConstruct
	public void init() {
		setLstHoaDon(new ArrayList<Hoadon>());
		setTaiKhoan(((TaiKhoanDangNhapBean) BeanUtil
				.findBean("taiKhoanDangNhapBean")).getTaiKhoan());
	}

	public void LietKeToanBoDonHang() {
		TaiKhoanDangNhapBean tkdnb = BeanUtil.findBean("taiKhoanDangNhapBean");

		HoadonDAO hddao = new HoadonDAO();
		setLstHoaDon(hddao.GetHoaDon(tkdnb.getTaiKhoan().getMataikhoan()));

	}

	public void SuaThongTin() {
		TaikhoanDAO tkdao = new TaikhoanDAO();
		tkdao.saveOrUpdate(getTaiKhoan());

		// ---------------
		// set giá trị cho tài khoản ở taiKhoanDangNhapBean
		((TaiKhoanDangNhapBean) BeanUtil.findBean("taiKhoanDangNhapBean"))
				.setTaiKhoan(getTaiKhoan());
		// ---------------
		MessageNotificationHepler
				.ShowMessage("Cập nhật thông tin tài khoản thành công");
	}

	public void DoiMatKhau() {

		System.out.println(getPassCu() + "-" + getPassMoiLan1() + "-"
				+ getPassMoiLan2() + "-" + getTaiKhoan().getMatkhau());
		if (getPassCu().equals(getTaiKhoan().getMatkhau())
				&& getPassMoiLan2().equals(getPassMoiLan1())
				&& getPassMoiLan1().length() >= 5) {

			TaikhoanDAO tkdao = new TaikhoanDAO();
			getTaiKhoan().setMatkhau(getPassMoiLan1());
			tkdao.saveOrUpdate(getTaiKhoan());

			// ---------------
			// set giá trị cho tài khoản ở taiKhoanDangNhapBean
			((TaiKhoanDangNhapBean) BeanUtil.findBean("taiKhoanDangNhapBean"))
					.setTaiKhoan(getTaiKhoan());
			// ---------------
			MessageNotificationHepler.ShowMessage("Đổi mật khẩu thành công");
		} else {
			MessageNotificationHepler.ShowMessage("Đổi mật khẩu thất bại");
		}
	}

	// -------------------
	public List<Hoadon> getLstHoaDon() {
		return lstHoaDon;
	}

	public void setLstHoaDon(List<Hoadon> lstHoaDon) {
		this.lstHoaDon = lstHoaDon;
	}

	public Taikhoan getTaiKhoan() {
		return taiKhoan;
	}

	public void setTaiKhoan(Taikhoan taiKhoan) {
		this.taiKhoan = taiKhoan;
	}

	public String getPassCu() {
		return passCu;
	}

	public void setPassCu(String passCu) {
		this.passCu = passCu;
	}

	public String getPassMoiLan1() {
		return passMoiLan1;
	}

	public void setPassMoiLan1(String passMoiLan1) {
		this.passMoiLan1 = passMoiLan1;
	}

	public String getPassMoiLan2() {
		return passMoiLan2;
	}

	public void setPassMoiLan2(String passMoiLan2) {
		this.passMoiLan2 = passMoiLan2;
	}
}
